/*
 * Classe "statique" permettant de gérer la mise en page de l'application sur la base Logements
 * Gaële Simon
 * Janvier 2012
 */

package ihm;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.http.HttpServlet;
import javax.servlet.jsp.JspWriter;

/**
 *
 * @author gsimon
 */
public class MiseEnPageLog{

    public static enum TypeConnexion {consult,maj};

    public static void entete(JspWriter out,String titre) throws IOException {
	out.println ("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">");
	out.println ("<html>");
  	out.println ("<head>");
  	out.println ("<meta http-equiv=\"Content-type\" content=\"text/html;charset=UTF-8\">");
  	out.println ("<title>"+titre+"</title>");
  	out.println ("<link rel=\"stylesheet\" type=\"text/css\" href=\"site.css\">"); 
  	out.println ("</head>");
  	out.println ("<body>\n");

  	/* ajout : appel de l'enTete */
  	try {
            haut(out);
        } catch (IOException ex) {
            Logger.getLogger(MiseEnPageLog.class.getName()).log(Level.SEVERE, null, ex);
        } //fin catch

    } //fin entete


    public static void haut(JspWriter out) throws IOException {
	out.println ("<div class=\"haut\">");

  	out.println ("<div class=\"hautGauche\">");
  	out.println ("<img src=\"maison.gif\" height=\"90px\" alt=\"maison\">");
  	out.println ("</div>");

  	out.println ("<div class=\"hautCentre\">");
  	out.println (" LOGEMENTS");
  	out.println ("</div>");

  	out.println ("</div>");
    }

    public static void menu(HttpServlet serv,JspWriter out, TypeConnexion tc) throws IOException {

        String contexte; //contient le chemin d'accès absolu à l'application
        contexte = serv.getServletContext().getContextPath();

	out.println ("<div class=\"milieu\">");

  	out.println ("  <div class=\"menu\">");
	out.println ("    <a href=\"index.jsp\">D&eacute;connexion</a>");
  	out.println ("    Consultation");
  	out.println ("    <ul>");
  	out.println ("        <li><a href="+contexte+"/controleur?cmd=proprietaires>Liste des propri&eacute;taires</a>");
  	out.println ("        <li><a href="+contexte+"/controleur?cmd=clients>Liste des clients</a>");
  	out.println ("        <li><a href="+contexte+"/controleur?cmd=logements>Liste des logements d'un propri&eacute;taire </a>");
	out.println ("        <li><a href="+contexte+"/controleur?cmd=logementsCrit>Liste des logements libres sur crit&egrave;res</a>");
	out.println ("    </ul>");
	if (tc == TypeConnexion.maj) {
		out.println ("    Mise &agrave; jour");
	  	out.println ("    <ul>");
		out.println ("        <li><a href="+contexte+"/controleur?cmd=MAJproprietaires>Propri&eacute;taires</a>");
  		out.println ("        <li><a href="+contexte+"/controleur?cmd=MAJclients>Clients</a>");
  		out.println ("        <li><a href="+contexte+"/controleur?cmd=MAJlogements>Logements</a>");
		out.println ("        <li><a href="+contexte+"/controleur?cmd=MAJlocations>Locations</a>");
  		out.println ("        <li><a href="+contexte+"/controleur?cmd=ajoutClient>Ajouter un client</a>");
		out.println ("        <li><a href="+contexte+"/controleur?cmd=ajoutLocation>Ajouter une location</a>");

	  	out.println ("    </ul>");
	}	
  	
  	out.println ("  </div>");
    }

    public static void corps_begin(JspWriter out, String titre) throws IOException {
	out.println ("<div class=\"contenu\">");
	//ajouter un identifiant en CSS et l'utiliser ici pour le titre du contenu ?
	out.println("<div id='titre'>");
	out.println(titre);
	out.println("</div>");
    }

    public static void corps_end(JspWriter out) throws IOException {
	out.println ("</div>"); /* ajout pour fermer le div contenu (cf corps_begin)*/
	out.println ("</div>"); /* ajout pour fermer le div milieu (cf menu)*/
    }

    public static void pied(JspWriter out) throws IOException {
  	out.println ("</body>");
  	out.println ("</html>");
    }

    /*
     * On passe la servlet correspondant à la JSP dans laquelle on fait la mise en page
     * en paramètre afin d'accéder à son contexte ce qui permettra de calculer dynamiquement
     * les URL dans les liens.
     */
    public static void partie1(HttpServlet serv, JspWriter out, String titre, TypeConnexion tc) {
        try {
            entete(out,titre);
            menu(serv,out,tc);
            corps_begin(out, titre);
        } catch (IOException ex) {
            Logger.getLogger(MiseEnPageLog.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public static void partie2(JspWriter out) {
        try {
            corps_end(out);
            pied(out);
        } catch (IOException ex) {
            Logger.getLogger(MiseEnPageLog.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
